package com.zlx.rulemk.marketing.beans;

import java.util.Map;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @Author: zhanglingxing
 * @CreateTime: 2022-07-08
 * @Description: Reids环境的数据结构
 * @Version: 1.0
 */


@Data
@NoArgsConstructor
@AllArgsConstructor
public class BufferData {

    /**
     * redis中的大key
     * key
     *  deviceId:cacheId
     *
     * valueMap
     * key      value
     * 2:6:20    AAABDCC
     * 2:8:10    ADDFSDG
     * 0:6:30    AAACCF
     */

    // 规则条件分组计算中的分组标识（如deviceId,或ip等）对应的具体的值
    private String keyByValue;

    // 缓存id，用于唯一确定一个“规则条件”（事件约束相同）
    private String cacheId;

    // 缓存数据值（时间范围->事件序列）
    /**
     * valueMap的数据结构
     * key[stratTime,endTime,insertTime] value[对应的事件code字符串]
     * key      value
     * 2:6:20    AAABDCC
     * 2:8:10    ADDFSDG
     * 0:6:30    AAACCF
     */
    private Map<String,String> valueMap;

    // 返回拼接好的缓存顶层key
    public String getCacheKey(){
        return this.keyByValue+":"+this.cacheId;
    }

}
